package com.chushouya.manager.service.common;


import com.chushouya.manager.dto.admin.sms.SmsBody;
import com.chushouya.manager.dto.admin.sms.SmsDTO;

/**
 * 短信接口
 */
public interface SmsService {


    /**
     * 发送动态模板短信
     */
    boolean sendDynamicTemplateSms(SmsDTO dto);

    /**
     * 发送短信验证码
     * @param scene 场景值(同一个手机号，短时间内在不同场景使用验证码校验时，区分场景)
     * @param phone 手机号
     * @param signName 签名[扩展字段] 速回收/回收猩
     */
    void sendSmsCode(String scene, String phone, String signName);

    /**
     * 验证短信验证码
     * @param scene 场景值(发送验证码时提供的场景值)
     * @param phone 手机号
     * @param smsCode 验证码
     */
    boolean validateSmsCode(String scene, String phone, String smsCode);

    /**
     * 发送短信
     * @param smsBody 短信主体
     */
    boolean sendSms(SmsBody smsBody);

    /**
     * 发送异步短信
     * @param smsBody 短信主体
     */
    void sendSmsAsync(SmsBody smsBody);

}
